<?php
/** 
* 数据库连接类,对数据操作
* 
* 完成数据库的操作。 
* @author      m17269@163.com
* @version     1.0
* @since       1.0 
*/  

/** 
* 数据库连接
*  
* @author         m17269@163.com
* @since          1.0 
*/ 

class PGDB{

    private $_db_config = null;
    private $_pgdb_connect = null;
    private $_ins = null;
    private $_db = null;

    /**
     * 构造方法，配置默认的数据库参数
     */
    public function __construct() {
        $this->_db_config = [
            'DB_HOST' => 'host=10.28.1.172',
            'DB_PORT' => 'port=5400',
            'DB_NAME' => 'dbname=xialj',
            'DB_CREDENTIALS' => 'user=usr_cloudtop password=usr@Cloudtop_2018',
        ];

    }

    // /**
    //  * 单例模式
    //  * 获得到的类唯一并且使用默认配置
    //  */
    // public function getInstance(){
    //     if (!self::$_ins instanceof self) {
    //         self::$_ins = new self();
    //     }
    //     return self::$_ins;
    // }

    /** 
    * getDbConnect  
    * 获取数据库的连接游标
    * 
    * @access public 
    * @since 1.0 
    */ 
    public function getDbConnect(){
        if($this->_db != null){
            return $this->_db;
        }
        $connect_str = $this->_db_config['DB_HOST'].' '.$this->_db_config['DB_PORT'].' '.$this->_db_config['DB_NAME'] .' '. $this->_db_config['DB_CREDENTIALS'];
        return pg_connect($connect_str);
    }

    /** 
    * getPgdbConnect  
    * 获取数据库的连接游标
    * 
    * @access public 
    * @since 1.0 
    */ 
    public function getPgdbConnect(){
        return $this->_pgdb_connect;
    }


    /** 
    * setDbConfig  
    * 设置数据库的参数 
    * 
    * @access public 
    * @param mixed $db_config 传入数据库的基本配置
    * @since 1.0 
    */ 
    public function setDbConfig($db_config=array()){
        $this->_db_config = $db_config;
    }

    /** 
    * getDbConfig  
    * 函数的含义说明 
    * 
    * @access public 
    * @since 1.0 
    * @return array 数据库的基本配置信息
    */ 
    public function getDbConfig(){
        return $this->_db_config;
    }

    /** 
    * select  
    * 查询数据
    * 
    * @access public 
    * @param mixed $table 表名
    * @param mixed $field 要过滤的字段
    * @param mixed $where 要查询的条件
    * @param mixed $limit 要查询的数据数量
    * @since 1.0 
    * @return 查询到的数据
    */
    public function select($table,$field='*',$where='',$limit=0){
        $db = $this->getDbConnect();

        if($field == "*"){
            if($where == ''){
                if($limit == 0){
                    $sql = "select * from $table;";
                }
            }
        }
        return pg_query($db,$sql);
    }

    /** 
    * query  
    * 通过传入的SQL获取数据
    * 
    * @access public 
    * @param mixed $sql 要传入的完整的SQL语句
    * @since 1.0 
    * @return 查询/删除/修改/增加 的结果
    */
    public function query($sql){
        $db = $this->getDbConnect();
        return pg_query($db,$sql);
    }


}
